It is often seen that multimedia systems implemented for one application, though having many elements/modules in common with the feature for another application, often find it difficult to re-use these common elements or to leverage the modules that are already productized for the first application. The time to market and the turn-around time needed for making slight variations to an existing solution, typically, becomes excessive and do not make too much business sense. Also, such modifications keep organizations from focusing on new research and development efforts and in implementing new functionality into their product lines. Existing solutions are not scalable based on functions, easier to port, and extensible based on usage scenarios.
Some of the challenges to reusing the common elements are that the range and variations in the core media functionality can be high and use cases of the end applications may combine existing features and functionality in unique ways. This may result in most of the standard media transformations, such as streaming server, streaming client, media recorder, media player, media transcoder, media preview, network player, snapshots and the like and combinations thereof, for streaming systems not being available as desired in a manner that allows fundamental reuse for fast and scalable deployment across various end applications.
For example, a surveillance application including security video camera may require the security video camera feeding live video capture into a system, which can scale, encode, packetize the first source in one format and stream it to several destinations. The same video capture may also need to be scaled, encoded, and packetized in a different format and encrypted before transmitting to some other destinations. It can be seen that there is no need for audio presence in such an application.
In another example, a surveillance application may require many security video cameras feeding live video capture into a system, which denoises and deinterlaces the live feed before it scales, encodes, packetizes all these video captures in a multi program format and streams a single encoded video stream to designated destinations. Along with the video captures, two audio sources may also need to be multiplexed into the outgoing single encoded video stream. In addition, the encoded video stream from two or more of the security video cameras may need to be recorded on to the local disk.
Although, in the above two example scenarios, many of the functional blocks are same, there are some differences that would render a simple reuse of software from one application to the other application difficult and time consuming, because the core technologies, like media processing, resource management and device handling and many others are typically configured in different usage modes based on the applications needs. The reuse can become even more challenging as the requirements for each software system evolves continuously with advancements in processor and technology development.
The systems and methods disclosed herein may be implemented in any means for achieving various aspects. Other features will be apparent from the accompanying drawings and from the detailed description that follow.